﻿using System.Data;
using Dapper;
using WebMvc.Models;

namespace WebMvc.Dao
{
    public class TicketDao : BaseDao<Ticket>, IBaseDao<Ticket>
    {
        public TicketDao(IDbConnection conn) : base(conn)
        {
        }

        protected override string SelectCmd
        {
            get
            {
                return @"SELECT Id, Nombre, Descripcion, IdSala, FechaInicio, FechaFin " +
                        "FROM dbo.Ticket";
            }
        }

        protected override string DeleteCmd
        {
            get { return "DELETE FROM dbo.Ticket"; }
        }

        public bool Create(Ticket obj)
        {
            const string cmd = @"INSERT INTO dbo.Ticket(Nombre, Descripcion, IdSala, FechaInicio)" +
                               "VALUES (@nombre, @desc, @idSala, @fechaInicio)";

            var result = Connection.Execute(cmd,
                new {@nombre = obj.Nombre, @desc = obj.Descripcion,
                     @idSala = obj.IdSala, @fechaInicio = obj.FechaInicio });

            return result == 1;
        }

        public bool Update(Ticket obj)
        {
            const string cmd = @"UPDATE dbo.Ticket SET " +
                                "Nombre = @nombre, Descripcion = @desc, IdSala = @idSala," +
                                "FechaInicio = @fechaInicio, FechaFin = @fechaFin " +
                                "WHERE Id = @id";

            var result = Connection.Execute(cmd,
                new
                {
                    @id = obj.Id,
                    @nombre = obj.Nombre,
                    @desc = obj.Descripcion,
                    @idSala = obj.IdSala,
                    @fechaInicio = obj.FechaInicio,
                    @fechaFin = obj.FechaFin
                });

            return result == 1;
        }
    }
}